package com.llt.optimize.pay;

import java.util.HashMap;
import java.util.Map;

/**
 * @author llt
 * @date 2025/3/14
 * 多 if-else 优化
 */
public class PayDemo {
    public static void main(String[] args) {
        // 原本 (省略参数校验等)
        String payType = "wechat";
        if ("wechat".equals(payType)) {
            System.out.println("微信支付");
        } else if("alipay".equals(payType)) {
            System.out.println("支付宝支付");
        }

        // 优化 1 (stream)
        Map<String, Runnable> map = new HashMap<>();
        map.put("wechat", () -> System.out.println("微信支付"));
        map.put("alipay", () -> System.out.println("支付宝支付"));
        map.get(payType).run();

        // 优化 2 (接口+策略模式)
        Map<String, IPay> map2 = new HashMap<>();
        map2.put("wechat", new WeChatPay());
        map2.put("alipay", new AliPay());
        map2.get(payType).pay(100);
    }
}
